import { Inject } from "@midwayjs/core";
import { Context } from "@midwayjs/web"

export class BaseController {
  @Inject()
  ctx: Context;

  constructor(ctx: Context) {
    this.ctx = ctx
  }

  /**
   * 成功响应
   * @param data 返回数据
   * @param message 提示信息
   */
  success<T = any>(data?: T, message = 'ok'): IResponse<T> {
    return {
      code: 200,
      message,
      data
    }
  }

  /**
   * 失败响应
   * @param code 可选错误码
   */
  fail(message = 'error', code = 100): IResponse<null> {
    return {
      code,
      message,
      data: null
    }
  }
}
